package com.ktgj.customer.domain.Insurance.dxModel;

import sun.misc.BASE64Encoder;

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import java.security.Key;
import java.security.SecureRandom;

/**
 * DESSecurity加密
 */
class DesUtil {
    private static Key key;

    private static String KEY_STR = "myKey";

    private static String CHARSETNAME = "UTF-8";

    private static String ALGORITHM = "DES";


    static {

        try {

            //生成DES算法 对象

            KeyGenerator generator = KeyGenerator.getInstance(ALGORITHM);

            //运用SHA1安全策略

            SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");

            //设置上秘钥种子

            secureRandom.setSeed(KEY_STR.getBytes());

            //初始化基于SHA1的算法对象

            generator.init(secureRandom);

            //生成秘钥对象

            key = generator.generateKey();

            generator = null;

        } catch (Exception e) {

            throw new RuntimeException(e);

        }

    }

    /**

     * 获取加密后的信息

     * @param str

     * @return

     */

    public static String getEncryptString(String str) {

        BASE64Encoder base64encoder = new BASE64Encoder();

        try {

            byte[] bytes = str.getBytes(CHARSETNAME);

            Cipher cipher = Cipher.getInstance(ALGORITHM);

            cipher.init(Cipher.ENCRYPT_MODE, key);

            byte[] doFinal = cipher.doFinal(bytes);

            return base64encoder.encode(doFinal);

        } catch (Exception e) {

            // TODO: handle exception

            throw new RuntimeException(e);

        }

    }
}
